package com.jt.sys.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.jt.common.vo.JsonResult;
import com.jt.common.vo.PageObject;
import com.jt.sys.entity.SysConfig;
import com.jt.sys.service.SysConfigService;

@Controller
@RequestMapping("/config/")
public class SysConfigController {
	@Autowired
	private SysConfigService sysConfigService;

	@RequestMapping("doConfigListUI")
	public String doConfigListUI() {
		return "sys/config_list";
	}
	@RequestMapping("doConfigEditUI")
	public String doConfigEditUI(){
		return "sys/config_edit";
	}
	/*
	 * 当方法上使用了@ResponseBody注解时，底层会调用httpMessageConverter对象的相关方法（例如write方法），将方法返回值
	 * 以指定形式（字符串形式）进行输出。假如是字符串，直接把字符串写出到客户端，假如是对象，会将对象转换为json串，然后写到客户端。
	 * FAQ？
	 * 1.谁将控制层方法返回的对象转换为json串？
	 * HTTPMessageConverter的接口实现类对象。（例如：jackson，fastjson，gson）
	 * 2.底层将对象转换为json串时，是如何获取对象内部数据的？
	 * a)javabean：调用get。。。方法
	 * b)map：调用get（key）方法。
	 * 3.当方法上没有写responseBody时，底层会将返回值封装为modelandview对象，默认指定的view为url
	 * 4.请求中的参数是如何绑定到方法的参数上的？（springmvc）
	 * springmvc底层会调用DataBinder对象中的相关方法进行实现
	 */
	@RequestMapping("doFindPageObjects")
	@ResponseBody
	public JsonResult doFindPageObjects(String name, Integer pageCurrent) {
		PageObject<SysConfig> pageObject = sysConfigService.findPageObjects(name, pageCurrent);
		return new JsonResult(pageObject);
	}
	/*
	 * @RequestMapping("doConfigEditUI") public String doConfigEditUI(){
	 * 
	 * return "sys/config_edit"; }
	 */
	
	
	
	@RequestMapping("doSaveObject")
	@ResponseBody
	public JsonResult doSaveObject(SysConfig entity){
		
		sysConfigService.saveObject(entity);
		return new JsonResult("save ok");
	}
	@RequestMapping("doUpdateObject")
	@ResponseBody
	public JsonResult doUpdateObject(SysConfig entity){
		sysConfigService.updateObject(entity);
		return new JsonResult("update ok");
	}
	
	@RequestMapping("doDeleteObjects")
	@ResponseBody
	public JsonResult doDeleteObjects(Integer... ids ){
		sysConfigService.deleteObjects(ids);
		return new JsonResult("deleteOk");
	}
	
}
